kexec: restore hypercall 1st arg's type
authorJan Beulich <jbeulich@suse.com>
Mon, 7 Nov 2022 15:09:13 +0000 (16:09 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Wed, 9 Nov 2022 20:11:49 +0000 (20:11 +0000)
commita4180b03fffafa1868b0bcacc20198d4caef2908
tree60d02802ee74cb3846eebfa529b7a6da02842924
parent8febf78f1ed075292b664bf8c60c5f472028f955
kexec: restore hypercall 1st arg's type

This reverts a small part of 7e21b25059ed ("xen: harmonize return types
of hypercall handlers"). The change from "unsigned long" to "unsigned
int" for the native handler function meant that previously invalid
values became valid. While perhaps not a significant issue, strictly
speaking that's still a change to the ABI. Don't go as far as restoring
the compat entry point's type though: That one can't have values passed
which don't fit in 32 bits.

Note that as a side effect this fixes the invocation of
hypercall_create_continuation(), which by mistake wasn't adjusted by the
earlier change.

Also take the opportunity and correct the respective comment in the
public header. (The way it was it really supports that it probably was
pointless to use "long", but that's the way the hypercall was
introduced.)

Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Release-acked-by: Henry Wang <Henry.Wang@arm.com>
xen/common/kexec.c
xen/include/hypercall-defs.c
xen/include/public/kexec.h